Blog

Passing the Baton: Lucee 6 and Hibernate ORM

Michael Born July 20, 2023

Spread the word

Michael Born

July 20, 2023

Spread the word


Share your thoughts

Passing the Baton: Lucee 6 and Hibernate ORM

As of Lucee 5.4.1.8, new Lucee builds will no longer bundle the (Lucee) Hibernate extension. This means that if you rely on Hibernate ORM in your CFML application, you will need to manually bundle the Hibernate extension into your Lucee server. Let's read on for more info.

The News

First, let's start with the official note from the Lucee 5.4.1.8 Stable Release notes (courtesy of Zac Spitzer):

Lucee ORM is no longer being developed or bundled by the Lucee Team, Ortus have forked and taken over the development of ORM for Lucee, see Introducing: The Ortus ORM Extension.

It seems that Lucee has made the decision to 1) trim the Lucee installation size by no longer bundling the Hibernate extension with new Lucee installations, and to 2) halt further development on the Lucee Hibernate extension. It is unclear whether "no longer being developed" is referring to new features only, or whether that includes bug fixes and security patches as well.

This news means that Micha and the LAS team can focus on the Lucee server platform, bringing you speed and stability, while Ortus provides the Hibernate integration for a powerful database ORM layer.

What Now?

Since Ortus Solutions has committed to ongoing support of the Hibernate extension, there is no concern for the future of Hibernate ORM on Lucee. The Ortus-maintained extension (termed "Ortus ORM extension") has had over 500 commits and 9 releases since forking, and the upcoming 7.0.0 release will upgrade to Hibernate 5.6. We're not going away!

While it is possible to continue using the Lucee Hibernate extension, we highly recommend switching to the Ortus ORM extension for speed improvements, security patches, and ongoing support.

As a quick example, take a look at the ORMReload times across the Lucee Hibernate and the Ortus ORM Extension. On the left are several versions of the Lucee Hibernate extension (3.5.5.87, 5.4.29.20-BETA, and 5.4.29.27-BETA), and on the right is the Ortus ORM Extension (version 6.1.0). You can see that the ORMReload time is over 50% faster using the Ortus ORM extension!

ORMReload times compared with the Lucee Hibernate extension (blue) vs. the Ortus ORM Extension (right)

Installing the Ortus ORM Extension with CommandBox

Installing at Server Start Time

To install the Ortus ORM extension with CommandBox at server start time, pass the -Dlucee-extensions environment variable containing a list of extension IDs to install:

box server start cfengine=lucee@5.4 -Dlucee-extensions='D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.1.0'

Running this command server start in CommandBox will start the Lucee server using the lucee-extensions environment variable to configure any additional extensions beyond the default bundled ones. This environment variable will instruct Lucee to install the Ortus ORM extension v6.1.0 at startup. By the time your CFML code is executing, the extension will be fully installed and ready to go.

Installing on a Pre-Existing Lucee Server

For a pre-built Lucee server isntance, you can opt to install the extension without restarting the server using CommandBox's install command:

box install D062D72F-F8A2-46F0-8CBC91325B2F067B@6.1.0

This will install the extension to the Lucee server's deploy/ directory, where it will be picked up (usually within 30 seconds) and installed into the running Lucee server.

Installing the Ortus ORM Extension on Vanilla Lucee

To install the extension without assistance from CommandBox, append the extension ID ( D062D72F-F8A2-46F0-8CBC91325B2F067B ) to the LUCEE_EXTENSIONS environment variable before starting the Lucee server. Exactly how you do these two steps will depend on your operating system and on the method you used to install Lucee server in the first place.

Alternately, you can browse to the Extension>Applications page in the Lucee Server Admin and click on the "Ortus ORM Extension" under "Not Installated". From there, you can choose and install versions at will.

See Lucee's "Extension Installation" documentation for more info.

Conclusion

The LAS team has long "carried the baton" in regards to Hibernate ORM. With that baton now passed firmly to Ortus Solutions, Hibernate in CFML is entering a new age of speed, stability, and ongoing support. For more information, you can check out the documentation, or our support page if you are looking for additional capabilities.

Add Your Comment

(2)

Jul 24, 2023 21:31:52 UTC

by Will Belden

Now you just need to make it ACF-compatible.

Jul 24, 2023 21:32:30 UTC

by Will Belden

Also! Congratulations! Ortus is keeping CFML alive!

Recent Entries

Ortus June 2024 Newsletter!

Ortus June 2024 Newsletter!

Welcome to the latest edition of the Ortus Newsletter! This month, we're excited to bring you highlights from our sessions at CFCamp and Open South Code, as well as a sneak peek into our upcoming events. Discover the latest developments in BoxLang, our dynamic new JVM language, and catch up on all the insightful presentations by our expert team. Let's dive in!

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang June 2024 Newsletter!

BoxLang June 2024 Newsletter!

We're thrilled to bring you the latest updates and exciting developments from the world of BoxLang. This month, we're diving into the newest beta release, introducing a new podcast series, showcasing innovative integrations, and sharing insights from recent events. Whether you're a seasoned developer or just getting started, there's something here for everyone to explore and enjoy.

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang 1.0.0 Beta 3 Launched

BoxLang 1.0.0 Beta 3 Launched

We are thrilled to announce the release of BoxLang 1.0.0-Beta 3! This latest beta version is packed with exciting new features and essential bug fixes, including robust encryption functionality, enhanced Java interoperability, and more efficient event handling. Key highlights include the introduction of query caching capabilities, seamless coercion of Java Single Abstract Method (SAM) interfaces from BoxLang functions, and support for virtual thread executors. So, let’s dive into the details of what’s new in BoxLang 1.0.0-Beta 3 and how you can start leveraging these updates today!

Luis Majano
Luis Majano
June 28, 2024